package com.cw.DesignModel23.Behavioral.ObserverPattern;

import java.util.Observable;
import java.util.Observer;

/**
 * 管理员类
 *      管理员类观察的是游戏
 *      用户反馈的问题 属于 游戏 , 管理员关注的是游戏
 *      无法关注 问题
 *
 * 如 : 在电商平台 , 关注的是某个商品 , 在降价时发送通知
 *      商品是存在的 , 降价消息 在关注的时候还没有被创建 , 是无法获取依赖的
 */
public class Manager implements Observer {
    /**
     * 管理员名称
     */
    private String name;

    public Manager(String name) {
        this.name = name;
    }

    @Override
    public void update(Observable o, Object arg) {
        // 获取 被观察者 对象
        Game game = (Game) o;

        // 获取 被观察者 对象 调用 notifyObservers 方法的参数
        Question question = (Question) arg;

        System.out.println(name + " 观察者 接收到 被观察者 " + game.getName() +
                " 的通知 , 用户 " + question.getUserName() +
                " 提出问题 " + question.getContent());
    }
}

